Bookmarking shared file and folder links

ABSTRACT

A document management system that is adapted to allow users to share files or folders by: (1) creating a link to the files or folders; and (2) sharing the link with other users. In particular embodiments, the system is adapted to keep track of any links generated by, sent by, and/or received by a particular user. The system may display a listing of the links upon request by a user, so that the user may re-use or deactivate the links, or modify attributes of the links. Having a centralized listing of the links may be particularly advantageous in helping a user keep track of the files and folders that they have shared and received.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/749,517, entitled, “BOOKMARKING SHARED FILE AND FOLDER LINKS”, filedJan. 22, 2020 claims the benefit of priority of U.S. patent applicationSer. No. 15/469,372, entitled, “BOOKMARKING SHARED FILE AND FOLDERLINKS”, filed Mar. 24, 2017 claims the benefit of priority of U.S.patent application Ser. No. 13/725,554, entitled, “BOOKMARKING SHAREDFILE AND FOLDER LINKS”, filed Dec. 21, 2012, which issued under U.S.Pat. No. 9,626,340, Apr. 18, 2017, which claims the benefit of priorityunder 35 U.S.C. § 119(e) to the filing date of U.S. Provisional PatentApplication No. 61/693,962, filed Aug. 28, 2012, entitled, “BookmarkingShared File And Folder Links”; both of which are hereby expresslyincorporated herein by reference in their entireties.

BACKGROUND

Individuals often wish to share digital files with others. This is oftendone by simply e-mailing copies of the files to others, by providingcopies of the files on a physical medium such a flash drive, or bysending hyperlinks (“links”) to files stored on a network-accessiblefile storage system by centralized document management services such asDROPBOX or NETDOCUMENTS. Although sharing documents via file-sharinglinks is convenient, it is often difficult for users to keep track ofthe links. Accordingly, there is a need for improved systems and methodsfor tracking file-sharing links.

SUMMARY OF THE INVENTION

A computer-implemented method of managing file sharing links, in variousembodiment, comprises: (1) in response to receiving a request to share afile set, generating a file set sharing link, wherein the file setsharing link is configured to provide a link recipient with at leastaccess to a linked file set; (2) capturing information associated withthe generated file set sharing link; (3) capturing informationassociated with the link recipient; (4) associating the link recipientinformation with the captured information associated with the file setsharing link; and (5) in response to a request to view the informationassociated with the generated file set sharing link, displaying a listof file set sharing links associated with the requester, wherein thelist of file set sharing links contains information about the generatedfile set sharing link.

A computer system, in accordance with various embodiments, comprises oneor more processors, and memory. The one or more processors is adaptedto, within the context of a synched file management system: (1) storeinformation regarding a plurality of file sharing links associated witha user, wherein the file sharing links provide access to files that arestored in the memory; and (2) selectively display a listing of the oneor more file sharing links to the user.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of a computer system for providing viewing rights tofiles and folders through shared file set links and the organization ofthese file set links are described below. In the course of thisdescription, reference will be made to the accompanying drawings, whichare not necessarily drawn to scale, and wherein:

FIG. 1 is a block diagram of a file management system in accordance withan embodiment of the present system;

FIGS. 2A-2B are schematic representations of one embodiment of how filesare segmented and stored in the file management system of FIG. 1;

FIG. 3 is a block diagram of a sharing module for use in the filemanagement system of FIG. 1;

FIG. 4A depicts a flow chart that generally illustrates various stepsexecuted by a file sharing system for organizing and viewing shared fileset links in accordance with one embodiment of the present system;

FIG. 4B depicts a flow chart that generally illustrates various stepsexecuted by a file sharing system for organizing and viewing shared fileset links in accordance with another embodiment of the present system;

FIG. 5 illustrates one embodiment of a user interface menu for creatinga file-sharing link for use in the file management system of FIG. 1;

FIG. 6A illustrates a browser window showing the generated link for ashared file set in accordance with one embodiment of the present system;

FIG. 6B illustrates a browser window that presents a list of file setsharing links associated with a user in accordance with one embodimentof the present system;

FIG. 7 illustrates one embodiment of a browser window that can be usedto activate a shared file link in accordance with one embodiment of thepresent system;

FIG. 8 illustrates a browser window that presents shared filesassociated with a shared file set link in accordance with one embodimentof the present system;

FIG. 9 illustrates a window displaying links associated with a user formanaging the links in accordance with an embodiment of the presentinvention; and

FIG. 10 illustrates a window displaying links associated with a user formanaging the links in accordance with an embodiment of the presentinvention.

FIG. 11 is a block diagram of a computer that may be used, for example,as a client or server computer within the context of the file managementsystem of FIG. 1.

DETAILED DESCRIPTION

Various embodiments will now be described. It should be understood thatthe present system and method may be embodied in many different formsand should not be construed as limited to the embodiments set forthherein. Rather, these embodiments are provided so that this disclosurewill be thorough and complete, and will fully convey the scope of thepresent system and method to those skilled in the art. Like numbersrefer to like elements throughout.

System Overview

A document management system, according to various embodiments, isadapted to allow users to share files or folders stored on a networkedfile storage device by: (1) creating a link to the location of the filesor folders in the storage device; and (2) sharing the link with otherusers by sending to such other users a communication containing thecreated link. The other users may access the files or folders by“clicking” or selecting the link, or by copying the link from thecommunication of the sending user and pasting it into a browser on theircomputer.

In particular embodiments, the system is adapted to keep track of anylinks generated by, sent by, and/or received by a particular user. Thesystem may display a listing of the links upon request by a user, sothat the user may re-use or deactivate the links, or modify attributesof the links. Having a centralized listing of the links may beparticularly advantageous in helping a user keep track of the files andfolders that they have shared and received.

In certain embodiments, the links may be links to read-only copies offiles stored centrally by a document management service, such as theDROPBOX service offered by Dropbox, Inc. of San Francisco, California.However, in other embodiments, the links may be links to shared folders,i.e. folders containing files that may be modified by multiple usersremotely located from one another.

Exemplary System Platform

An exemplary platform for implementing various embodiments will now bediscussed. Referring to FIG. 1, a system. 5 implementing file setsharing and link management is shown having a plurality of clientdevices 10A and 10B (collectively 10) and a file storage server system20, which are all interconnected by at least one network 18. Variousaspects of client devices and file storage server systems are discussedbelow.

Client Devices

In various embodiments, each client device 10 has a file storage serviceclient application 12A and 12B (collectively 12) through whichrespective files 14A and 14B of that client are specified for storage infile storage server system 20. It is noted that in some embodimentssynchronized copies of files 14A and 14B may be kept on both filestorage server system 20 and each respective client device 10. In someembodiments, client devices 10 may provide a file-browser type interface(not shown) for directly manipulating the files stored on file storageserver system 20 without maintaining a local copy, such as on asmartphone or tablet computer. Client devices 10 may also include a webbrowser 16A and 16B (collectively 16) for retrieving and presenting webpages and other content from web servers. Examples of suitable webbrowsers that may be used by client devices 10 include FIREFOX, GOOGLECHROME, INTERNET EXPLORER, OPERA, and SAFARI. It should be understood bythose skilled in the art that web browser 16 may optionally be used toaccess file storage server system 20 instead of using file storageservice client application 12.

Still referring to FIG. 1, while only two client devices 10A and 10B areshown for purposes of clarity, it should be understood by those skilledin the art that many client devices may simultaneously connect throughnetwork 18 to file storage server system 20 at any given time. Examplesof client devices 10 include, but are not limited to a desktop computer,a laptop computer, a tablet-computing device and a handheld computingdevice such as a personal digital assistant, a tablet computer or asmart phone (e.g., an IPHONE or BLACKBERRY, or a SYMBIAN orANDROID-based smart phone). Each client device 10 may store one or morefiles on file storage server system 20, and the files may be stored inany file format. When file storage service client application 12presents files to a user, the files may be arranged in folders and thefolders themselves may be arranged in other folders, or in any otherarbitrary arrangement supported by file storage server system 20, asdetermined by the user. However, one of skill in the art shouldunderstand in light of this disclosure that each user's file storagearchitecture may be considerably different from the next, and in someinstances, the file storage architecture may be implemented to maximizestorage and file retrieval efficiency.

File Storage Server System

File storage server system 20 stores files and manages access to thosefiles using client devices 10. File storage server system 20 and itscomponents may be implemented using any appropriate hardware andsoftware for performing file serving, storage and retrieval functions.For purposes of clarity and ease of description, FIG. 1 illustrates anexemplary file storage server 20.

File Storage Server System—Interface Module

In various embodiments, file storage server system 20 includes aninterface module 22, an account module 24, a link-based sharing module26 and a data store 28. Interface module 22 facilitates file access andfile storage between file storage server system 20 and client devices10. Interface module 22 receives files from and sends files to clientdevices 10 consistent with the user's preferences for sharing files.Interface module 22 may act as the counterpart to a client-side filestorage service client application 12A, 12B user interface that allows auser to manipulate files directly stored on file storage server system20. In some embodiments, software operating on client devices 10integrates network-stored files with the client's local file system toenable a user to manipulate network-stored files through the same userinterface (UI) used to manipulate files on the local file system, e.g.,via a file explorer, file finder or browser application. As analternative or supplement to the client-side file-explorer interface,user interface module 22 may provide a web interface for client devices10 to access (e.g. via browser 16) and allow a user to manipulate filesstored on file storage server system 20. In this way, the user candirectly manipulate files stored on file storage server system 20.

File Storage Server System—Data Store

In various embodiments, data store 28 stores files such as thoseuploaded using client devices 10. In the embodiment illustrated in FIG.1, a first user associated with client 10A (e.g. a link sharer) hascertain files 14A associated with their account, and a second userassociated with client 10B (e.g. a link recipient) has certain files 14Bassociated with their account. Copies of these files are stored in datastore 28. Copies of each respective user's files may also be locallystored on multiple client devices 10 associated with that user.

Data store 28 maintains, for each user, information identifying theuser, information describing the user's file directory in the datastore, as well as other identifying information, in a file journal thatis maintained for each user. In some embodiments, the file journal ismaintained on file storage server system 20. This file journal may beupdated periodically using information obtained directly from the filestorage server system 20 and/or from information obtained from one ormore client devices 10. In this way, the server-stored file journal onfile storage server system 20 (hereinafter the “server-side filejournal”) is updated when a file is changed at the server or on thelocal client. The file storage server system 20 then communicates withone or more client devices 10 to assure that any relevant changes arereflected locally. For example, if a particular user makes a change to aparticular file on a first client device, the change will be reflectedin the server-side file journal, and the server-side file journal willbe used to propagate the changes so that they are reflected both on thefile storage server system 20 and on all client devices associated withthat user as well as on client devices of users having shared access tothe file. Such techniques may be implemented, for example, within thecontext of a synchronized file system such as the DROPBOX service ofDropbox, Inc. of San Francisco, Calif.

File Storage Server System—Account Module

Account module 24 tracks files stored in data store 28 and entries inthe server-side file journal for each file. As users grant other usersmodification rights, account module 24 updates the server-side filejournal associated with each user in data store 20. Account module 24may also track client devices 10 that are associated with each user'saccount. Such devices may include, for example, a user's desktopcomputer, tablet computer, and handheld device.

File Storage Configuration

Referring to FIG. 2A, to expedite file handling and updating, in oneembodiment, files stored in data store 28 are segmented. That is, whenuser 42 uploads the file to data store 28, file storage server system 20is configured to segment the file into file segments 44A-44E and toassign a unique identifier to each file segment. In one embodiment, thefile segments may be four (4) megabytes in size, but it should beunderstood by those skilled in the art in light of this discussion thatthe size of the file segments can be of any suitable size. In oneembodiment, first file segment 44A is assigned a unique identifierAAAAAA, file segment 44B is assigned identifier BBBBBB, and so forth. Inone embodiment, the unique identifier is a hash value calculated foreach file segment using one or more hashing methods. In someembodiments, the file segments are stored in memory and may be retrievedusing the hash value for the file segment. To retrieve the file, thesystem may be adapted to use the respective unique identifiers for thevarious file segments to retrieve each file segment and then reconstructthe file for use by the user.

In various embodiments, file storage server system 20 is also configuredto create a unique file reference string 46 for each file byconcatenating file segment identifiers 44A-44E. User identifier XXXXXXand file reference string 46 are placed in a file journal entry 48. Itshould be understood that other information such as a version reference50 and device reference 52 may also be included in file journal entry48. In still other embodiments, information (metadata) related to thefile and its content (e.g., image orientation, pixel resolution and filetype if the file is an image) may also be included in the file journalentry to properly orient and process the file for ease of viewing. Thoseskilled in the art will understand from this disclosure that anyinformation associated with a file might be included in file journalentry 48 to enhance the features of the present system. In yet otherembodiments, file journal entry 48 may be entered into a singleserver-side file journal that is used for all users. In yet otherembodiments, the system may assign each user their own server-side filejournal so that only file journal entries for each file associated withthat user are stored in their respective server-side file journal.

Referring to FIG. 2B, when file 44 is shared with another user 54 havinga unique user ID YYYYYY, in one embodiment, file storage system 20 isconfigured to create another file journal entry 56 that associates filereference string 46 with the unique user identifier YYYYYY for user 54.Thus, when another user 54 is granted access to a file, it isunnecessary to store additional copies of the file in data store 28.Instead, when the other user clicks the file link, file journal entry 56is used to reconstruct the file. That is, file storage server system 20breaks the concatenated file journal entry 56 into its constituent partsand uses the unique segment identifiers to retrieve the various filesegments that constitute the file. File storage server systemreconstructs the file from the various file segments and displays thefile to the requesting user. It should be understood based on thisdisclosure to those skilled in the art that other efficient methods offile storage and user association may be used within the context of thepresent system and are within the scope of the disclosed system.

File Storage Server System—Sharing Module

In various embodiments, the link sharer can select any, or anycombination of, a single file, multiple files within a folder, a folder,multiple folders, or multiple files across multiple folders(individually and collectively a file set) to be shared with one or moreother users. It should be understood that when multiple files acrossmultiple folders are shared as a file set, that file set defines avirtual folder for those files.

Referring to FIG. 3, a block diagram illustrating the components of alink-based sharing module 26 in accordance with embodiments of thepresent system is shown. Link-based sharing module 26 enables a user toprovide others access to his or her file sets through a shared link.Link-based sharing module 26 comprises a link generation module 32 forgenerating links to the shared file sets, a file access module 34 foraccessing the files via the generated links, a link distribution module36 for facilitating distribution of links to other users, a linkmanagement module 38 for viewing generated links and terminating links,and database 40 that maintains information about linked file sets andrelated information.

Link Generation Module

Link generation module 32 is configured to generate a link correspondingto the file set specified by the user. In one embodiment, upon receivinga request to share a particular file set, link generation module 32generates the unique file set descriptor of the shared file set and aunique file location path or URL that serves as the link. Sharing module26 saves an association of the file set descriptor and the file locationpath or URL to data store 28. In some embodiments, the generated filesharing link is independent of the file set descriptor so that the fileset descriptor cannot be inferred from the file sharing link, and viceversa. An independent file set descriptor and file location path or URLprevents malfeasance by making it essentially impossible to guess orreverse engineer a sharable link. As an example, when sharing a folder“Reunion” with a file ID of 3D8B99, link generation module 32 mightgenerate a unique (e.g., one-way pad, or a pseudo-random value) URLhttps://www.service.com/s/2608u2mnco/BBQ.pdf, where the URL component2608u2mnco cannot be reverse-engineered, and accordingly create an entry<3D8B99, https://www.service.com/s/2608u2mnco/BBQ.pdf> in sharingdatabase 40.

In still other embodiments, a user can generate multiple different linksto the same folder. Thus, the user can more selectively control accessto the folder by distributing different selections from among themultiple different links to different link-recipients or sets thereof.This may, for example, allow a user to deactivate certain links whilekeeping other links active.

In various embodiments, the generated file set sharing link can be usedto provide many users access to a file set. For example, the link may beposted to a website such LinkedIn. In these embodiments, the link sharermay create a link to a file set that is relevant to a particular groupof users on LinkedIn. By posting the link on the LinkedIn page, membersof the group can use the link to view the contents of the folder.

Link Management Module

In various embodiments, the link management module 38 is configured tomanage shared file links for both link sharers and link recipients. Insome embodiments, when the link sharer generates a file set sharinglink, link management module 38 stores the link and other associatedinformation in a data store. Thus, for example, the file storage serversystem may track: (1) the generated link; (2) who activates the link;(3) the name of the files and folders associated with the link; (4) thedate the link was created; (5) the dates the link was activated; and (6)various other information associated with the link.

Automatic Capture of Link Information

In embodiments where the link sharer uses a server-side mail client tosend the file sharing link to a link recipient, the system mayautomatically capture link information. That is, the file storage serversystem 20 may be configured to automatically capture link informationwhen the link sharer generates the link. Moreover, if the link shareruses a server side e-mail client to share the link with a linkrecipient, the file storage server system 20 may also receiverecipient-based information from the server side e-mail client at thetime the link is sent to the link recipient. For example, the linksharer's contact information may be integrated into the file storageserver system so the system can obtain and track link recipientinformation.

When a link sharer sends a link using an external e-mail system (e.g.,gmail, Outlook, etc.)

or by posting the link on a webpage (e.g., Facebook or Twitter), thefile server storage system 20 may not be able to directly capture thelink recipient information. Thus, to accommodate for links shared usingcommunications outside the file storage server system 20, a softwareapplication or plug-in may run on the link sharer's client device andoperate to detect when a link is being sent by a client side e-mailprogram or posted to a website.

For example, the application or e-mail plug-in may scan all sent e-mailsfor file sharing links. If such a link is detected, the application ore-mail plug-in can detect the recipient's e-mail address to whom thelink was sent, and send this information back to the file storage serversystem 20. The file storage server system 20 can either store thedetected recipient's e-mail address together with other information thatwas captured when the link was generated or, in various otherembodiments where the link sharer's contact information is integratedwith the file storage server system, the recipient's name can bedetermined from the captured e-mail address. In still other embodiments,the application or plug-in may also use optical character recognitiontechniques when it scans information in e-mails or websites that may bein non text-recognizable form, such as jpegs, bitmaps, etc., to alsocapture other relevant information that can be associated with agenerated link.

In certain embodiments, an application or plug-in running on a linkrecipient's client device may be configured to scan incoming e-mails orwebsite downloads to detect links that have been shared with the linkrecipient. In this way, when a link recipient receives a link from alink sharer via e-mail, or downloads a link from a webpage, theapplication or plug-in may detect the link and forward informationregarding the sharing of the link (e.g., the link, the link recipient'sname and e-mail address, the date and time the link was shared, etc.) tothe file storage server system 20 for link management purposes. In someembodiments, the application or plug-in may be part of the file storageservice client application 12 running on the client. In variousembodiments, the application or plug-in may require that the linkrecipient login to the file storage server system 20 so that linkrecipient information can be automatically associated with the linkrecipient's various received and downloaded links.

In other embodiments, link management module 38 tracks and organizeslinks received by the link recipient when the link recipient activatesthe link. For example, when a link recipient activates a link, linkmanagement module 38 may record: (1) the time and date the link wasactivated; (2) whether a local copy of the files was downloaded; (3) thelink recipient's name; (4) which files were viewed using the link, (5)the link sharer's name, (6) the title of the linked file set, or (7) anyother information associated with the link or use of the link. Asindicated above, some of the recorded information may have beencollected when the link was generated and other information may becollected when the link was received and/or selected by the recipient.In embodiments where the link recipient information is captured when thelink is selected, the system may require the link recipient to login tothe file storage server system 20 so that the system can identify thelink recipient based on the link recipient's account information.

Manual Capture of Link Information

In addition to automatically capturing link information, in variousembodiments, the link management module 38 may be configured to allowthe link recipient to manually save links to a “favorites” menu. Forexample, when a link recipient receives or downloads a link, they canadd the link to a favorites listing to allow them to review informationregarding the link at a later date and/or so that they can use the linkto easily navigate back to the linked file set.

Moreover, if the link recipient finds a link on a website or socialmedia site when using their mobile device, instead of activating thelink on their mobile device and reviewing the linked files, the linkrecipient can simply add the link to a list of favorite links that isstored both on the user's various client devices and on a centralserver, and later review the files on their tablet or home computer. Inthis way, link recipients can store links of interest for later viewingon a more suitable device.

Termination of Rights Associated with a Link

In various embodiments, the link module 38 may be configured to allow alink sharer to terminate an active link to prevent further use by a linkrecipient. For example, a link sharer can generate multiple differentlinks to the same file set. Thus, the user can more selectively controlaccess to the file set by distributing different links from among themultiple different links to different link-recipients or sets thereof.This may, for example, allow a user to revoke certain link recipients'access to the file set while continuing to permit other link recipientsto access the file set (e.g., by deactivating certain users' links tothe file set while maintaining other users' links in active status). Insome embodiments, link management module 38 may be configured to allowthe link sharer to set a time limit on how long the link remains activebefore terminating viewing rights. In this way, the link sharer may senda link that remains active for two weeks to allow the link recipients toreview files contained in a file set. Once the two-week period expires,the link may become deactivated to prevent further access to the linkedfile set.

Display of Link Information

In various embodiments, the file storage server system 20 may beconfigured to display a list of links associated with a user. Forexample, in some embodiments, the file storage server system may displaya list of links associated with a user each time that user logs into thefile storage server system 20. In other embodiments, a file set sharinglink list window may open after the user generates or activates a link.In these embodiments, the list may include one or more of the links thatthe user generates, receives and/or saves to the system.

In still other embodiments, a list of file sharing links may bedisplayed in response to a request submitted by a user. For example, anactuatable display element or icon, in the form of a button, may beincluded as part of the file set viewing window that allows the linkrecipient to display a list of links associated with the user. This listmay be any one or more of links generated, received or saved by theuser. The displayed list may include, for example, one or more of: (1)the link sharer's name; (2) the date the link was received; (3) the nameof the linked file set; (4) a topic of the linked file set; (5) the datethe link was last activated; (6) the actual link itself; or (7) anyother information that may be associated with the link or tracked by thelink sharer or recipient.

In various embodiments, the user can adjust how links are displayed byclicking display options in the list window, or by setting preferencesthat are associated with the link recipient's account on the filestorage server system. For example, the user may set up theirpreferences so that only the link sharer's name and the title of thelink is displayed, or so that the links are shared in a particular order(e.g., most recently generated or received first). In this way, the usercan configure their list of links based on how they wish to view thelinks.

Exemplary System Operation

FIGS. 4A-4B depict exemplary methods for allowing a user to view a listof generated and received file set sharing links, and to save receivedfile set sharing links and associated information to a favorite linklist. The system may do this by automatically capturing informationassociated with a generated file set sharing link, or by manually addinginformation associated with the link when the user clicks a displayelement configured to allow the user to save a file set sharing link ofinterest to the user.

In some embodiments where file set sharing links and associatedinformation are automatically captured, the system provides the userwith a display element configured to allow the user to view a listing ofsent and received links. In other embodiments, the system is configuredto provide the user with at least two display elements—a first forviewing a list of file set sharing links associated with the user, and asecond display element for saving a file set sharing link to a list offile set sharing links associated with the user. In some embodiments,the list of file set sharing links contain all links sent and receivedby the user. In other embodiments, the list only contains file setsharing links that the user saves (e.g., a list of favorite links). Instill other embodiments, the list may contain sent links, received linksand favorite links.

Operation Associated with the Link Sharer

Referring to FIG. 4A and beginning at step 100, the file storage serversystem 20 (FIG. 1) captures information regarding file set sharing linksgenerated by link generation module 32 of file sharing module 26, inresponse to a link generation request from a link sharer user. In someembodiments, the system may automatically capture information associatedwith a generated file set sharing link when the link is created and thenstore the information in data store 28 (FIG. 1). At step 102, the filestorage server system 20 displays a representation of at least one fileset associated with a generated link along with a first and seconddisplay element (e.g., a selectable button or link) in a browser windowor in a local client application window. At step 104, the systemdetermines if the link sharer activates the first display element. Ifnot, then the system continues to display the representation of the fileset. If, on the other hand, the system detects that the link shareractivates the first display element at step 104, then at step 106, filestorage server system 20 displays a list of various (e.g., all) file setsharing links associated with the link sharer. As previously indicated,the list may contain links generated and received by the link sharer.

At step 108, the file storage server system provides the link sharerwith the ability to modify (e.g., one or more of adding, deleting andediting rights) the list of generated and received file set sharinglinks. For example, at step 110, the link sharer may organize the listbased on a predetermined criterion. For example, the predeterminedcriterion may be one or more of (1) the name of the person who sent thelink (for received links), (2) the link creation date, (3) the date thelink was last activated, (4) the name of the linked file set, or (5) anyother suitable criteria for organizing the list. At step 112, when theuser closes the list of links, the user can once again view therepresentation of the file set. In still other embodiments, the one ormore rights may also comprise rights to deactivate a previously sharedlink or to delete a link from the link list.

Operation Associated with the Link Recipient

In another embodiment of a method for managing file set sharing linksand referring to FIG. 4B, beginning at step 114, the file storage serversystem 20 is configured to generate a file set sharing link in responseto a request submitted by a link sharer using a client device (e.g., acomputer or handheld device). At step 116, the file storage serversystem 20 captures information associated with the generated file setsharing link. At step 118, the link sharer sends the file set sharinglink to a link recipient. At step 120, in response to a request to savethe file set sharing link by the link recipient, the system saves thefile set sharing link and associated information to a list of file setsharing links associated with the link recipient. At step 122, if thelink recipient submits a request to display the list of saved file setsharing links, the file storage server system displays the list of savedfile set sharing links.

It should be understood that the various steps described herein may varyin the context of different embodiments, and that certain steps may beomitted and other steps may be added. Moreover, other embodiments can bemade by combining various portions of other embodiments.

Example User Experience

The following exemplary user experience is described in reference to asynchronized file sharing system provided by Dropbox, Inc. of SanFrancisco, Calif. (hereinafter Dropbox). However, it should beunderstood after review of this disclosure by those of skill in the artthat the functionality described herein may be used with other documentmanagement systems, such as the NETDOCUMENTS system, which is offered byNetdocuments, Limited of Orem, Utah. FIGS. 5-10 are computer screenshots that may be used to understand the experience of a link sharer andlink recipient as they use a system according to an embodiment of thepresent system and method.

Link Sharer Experience

A link sharer may generate a link via link generation module 32 (FIG. 3)in different manners depending on the configuration of file serverstorage system (FIG. 1). In one embodiment and referring to FIG. 5, thelink sharer may generate a link using file storage service clientapplication 12 provided on the client device 10. That is, when a userright clicks on a file set or folder 59, menu 60 opens allowing the userto select a DROPBOX option, thereby opening a second, context-sensitivemenu 62. Second menu 62 may contain one or more options such as “GetLink” 64 and “Link Favorites” 65. In various embodiments, Link Favoritesmenu item 65, when selected, opens a window containing a list of savedlinks, a list of sent links, a list of received links and/or a listhaving some combination of sent, received and saved links. From secondmenu 62, the link sharer selects a Get Link menu item 64.

Referring to FIG. 6A, once the “get link” menu item 64 (FIG. 5) isselected, a browser window 66 opens displaying the file set of selectedfolder 59 in a file listing area (not numbered). Generated link 68, forshared file set of folder 59, is displayed in browser address bar 70. Insome embodiments, the link sharer may send the link via a local e-mailclient on client device 10, or through a server side e-mail client thatis part of file storage server system 20. In other embodiments, a linksharing option area 76 is displayed that allows the user to share thelink using a social media application, for example, FACEBOOK or TWITTER.Selection from link sharing option area 76 prompts the link sharer fortheir login information for the selected service. Assuming that correctlogin information is provided, link distribution module 36 uses anapplication-programming interface (“API”) of the selected service todisseminate the link via the service, such as by adding it as a post tothe link sharer's page on a social networking service (e.g. Facebook),or by sending it as part of a textual message on a micro bloggingservice (e.g. Twitter). It should be understood that the generated link68 could also be shared by copying the link from within the browseraddress bar 70 and pasting it in a webpage or through any other suitablesharing technique.

Browser window 66 may also contain a display element in the form of an“Open Favorites Link” button 80 (See FIGS. 6A and 6B) that is configuredto open a window containing links that are associated with the linksharer. For example, referring to FIG. 6B, when the link sharer clickson “open favorites link” button 80, a window 67 opens displaying a listof all generated and received file sharing links that are associatedwith the user. The link sharer may organize the list by any column, andin the example shown in the figure, the list is organized by the datethe link was last activated. In various embodiments, the window maycontain function buttons such as a deactivate link button 69, deletelink button 71 and a close button 73. In some embodiments, when the linksharer selects one or more links, the link sharer can deactivate thatlink by clicking the deactivate link button 69 to prevent the link frombeing used by corresponding link recipients. In some embodiments, whenthe deactivate button 69 is selected, a second window (not shown) mayopen allowing the link sharer to deactivate the link for selected linkrecipients from a group of link recipients that received the link. Thedelete link button 71 allows the link sharer to remove one or moregenerated or received links from the link list. Finally, the closebutton 73, when activated by the link sharer, closes the list window sothe link sharer can return to the file set representation displayed inthe window 66.

Link Recipient Experience

Once the link recipient receives the link, the link recipient may, forexample, select (e.g., click on) the link if it is an active link or,referring to FIG. 7, the link recipient may copy the link 68 and pasteit into their browser's address bar. Upon entering the link 68 in thebrowser's address bar, referring to FIG. 8, the file access module 34(FIG. 3) provides the shared file set and/or visual representationsthereof to the client 10 in response to the link recipient havingentered the received link. That is, client 10 sends a correspondingrequest to the link-based sharing module 26 (FIG. 3). File access module34 handles the request by locating the entry in the data store 28(FIG. 1) using the parameters contained within the link, and extractsthe associated file set identifier. File access module 34 then displaysa representation of the file set that corresponds to the file setidentifier by displaying the file set folder 59 in browser window 66.

Still referring to FIG. 8, browser window 66 may include a “save link tofavorites” display element 78 that allows the link recipient to manuallysave the file set sharing link (and associated information) to a list offavorite links. In addition to the display element 78, browser window 66may also include an “open link favorites” display element 80 that allowsthe user to view a list of generated and received file set sharing linksthat may also include the saved links. In some embodiments, when a linkis activated the file storage server system may automatically capturelink recipient information and store the information in data store 40.In this way, the link information the file storage server system 20 mayupdate the information associated with the link to include informationabout the link recipient.

In various embodiments, if the link recipient activated the link when itwas received, the link recipient may view the linked file set, and/ordownload the linked file set to the file directory in their accountusing an add to my DROPBOX display element 72, but the link recipientcannot make changes to file set 59 in the link sharer's account. Saidanother way, while the link recipient can view and associate a copy offile set 59 to their DROPBOX account or locally to their client device10 and make changes to the local copy, they cannot collaborate with thelink sharer by adding, deleting or editing the files in the linksharer's account.

Referring to FIG. 9, when the link recipient clicks “open linkfavorites” display element 80, a window 82 opens displaying linksassociated with the link recipient. In one embodiment, list 82 maycontain a first group 84 of generated file set sharing links and asecond group 86 of received file set sharing links that are associatedwith the link recipient. In various embodiments, the list containsinformation associated with the link such as: (1) the name of therecipient of the link column 88; (2) the date the link was generatedcolumn 90; (3) the name of the linked file set column 92; (4) a file settopic column 94; a date the link was last activated column 96; and alink column 98. It should be understood from this disclosure that thefile storage server system may be configured to capture otherinformation associated with the link.

In some embodiments, the system provides the user with certain optionsassociated with the listed links. For example, the user may be able todelete one or more file set sharing links, deactivate one or more of thegenerated file set sharing links, select one of the file set sharinglinks to view, add a file set sharing link to the list, or organize thelist of file set sharing links based on a predetermined criterion. Forexample, the list may be organized by any column, and in the exampleshown in the figure, the list is organized by the date the link was lastactivated.

In other embodiments, the window may contain function buttons such as adelete link button 91, a deactivate link button 93 and a close button95. In various embodiments, the delete link button 91 allows the linkrecipient to remove one or more selected links from the list. Thus, thelink recipient can remove a link that is no longer of interest. In someembodiments, when the link sharer selects a link in the list 84, thelink sharer can deactivate that link by clicking the deactivate linkbutton 93, which will prevent the link from being used by linkrecipients.

In some embodiments, when the deactivate button 93 is selected, a secondwindow (not shown) may open allowing the link sharer to deactivate thelink for one or more link recipients chosen from a group of linkrecipients that received the link. Finally, the close button 95 allowsthe link recipient to close the list window 82 so the link recipient canreturn to the file set representation displayed in the window 66.

Referring to FIG. 10, in various embodiments where a link is notautomatically saved to a list of links, the link recipient can save thefile set sharing link to a received links list by clicking on “save linkto favorites” display element 78. In some embodiments, upon activationof display element 78, a generated and received file set sharing linklist 82 opens thereby displaying the list of saved file set sharinglinks, which may include the newly added file set sharing link 99. Byconfiguring the system to open link list 82 when a link is saved, theuser can easily check the information saved to the list to ensure thatthe saved information is both accurate and complete.

FIG. 11 illustrates a diagrammatic representation of computerarchitecture 200 that can be used within the file management system 5,for example, as a client computer (e.g., one of the client computers 10shown in FIG. 1), or as a server computer (e.g., the File Storage ServerSystem 20 shown in FIG. 1). In particular embodiments, the computer 200may be suitable for use as a computer of a link sharer or as a computerof a link recipient as these computers operate as clients within thecontext of the file storage server system 20 to facilitate the sharingof folder between a link sharer and a link recipient as discussed above.

In particular embodiments, the computer 200 may be connected (e.g.,networked) to other computers in a LAN, an intranet, an extranet, and/orthe Internet. The computer 200 may operate in the capacity of a serveror a client computer in a client-server network environment, or as apeer computer in a peer-to-peer (or distributed) network environment.The computer 200 may be a personal computer (PC), a tablet PC, a set-topbox (STB), a Personal Digital Assistant (PDA), a cellular telephone, aweb appliance, a server, a network router, a switch or bridge, or anycomputer capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by that computer. Further,while only a single computer is illustrated, the term “computer” shallalso be taken to include any collection of computers that individuallyor jointly execute a set (or multiple sets) of instructions to performany one or more of the methodologies discussed herein.

The exemplary computer 200 includes a processing device 202, a mainmemory 204 (e.g., read-only memory (ROM), flash memory, dynamic randomaccess memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM(RDRAM), etc.), a static memory 206 (e.g., flash memory, static randomaccess memory (SRAM), etc.), and a data storage device 218, whichcommunicate with each other via a bus 232.

The processing device 202 represents one or more general-purposeprocessing devices such as a microprocessor, a central processing unit,or the like. More particularly, the processing device may be a complexinstruction set computing (CISC) microprocessor, reduced instruction setcomputing (RISC) microprocessor, very long instruction word (VLIW)microprocessor, or processor implementing other instruction sets, orprocessors implementing a combination of instruction sets. Theprocessing device 202 may also be one or more special-purpose processingdevices such as an application specific integrated circuit (ASIC), afield programmable gate array (FPGA), a digital signal processor (DSP),network processor, or the like. The processing device 202 may beconfigured to execute the processing logic 226 for performing variousoperations and steps discussed herein.

The computer 200 may further include a network interface device 208. Thecomputer 200 also may include a video display unit 210 (e.g., a liquidcrystal display (LCD) or a cathode ray tube (CRT)), an alphanumericinput device 212 (e.g., a keyboard), a cursor control device 214 (e.g.,a mouse), and a signal generation device 216 (e.g., a speaker).

The data storage device 218 may include a non-transitorycomputer-accessible storage medium 230 (also known as a non-transitorycomputer-readable storage medium or a non-transitory computer-readablemedium) on which is stored one or more sets of instructions (e.g.,software 222) embodying any one or more of the methodologies orfunctions described herein. The software 222 may also reside, completelyor at least partially, within the main memory 204 and/or within theprocessing device 202 during execution thereof by the computer 200, themain memory 204 and the processing device 202 also constitutingcomputer-accessible storage media. The software 222 may further betransmitted or received over a network 220 via the network interfacedevice 208.

While the computer-accessible storage medium 230 is shown in anexemplary embodiment to be a single medium, the team“computer-accessible storage medium” should be understood to include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore sets of instructions. The term “computer-accessible storage medium”shall also be understood to include any medium that is capable ofstoring, encoding or carrying a set of instructions for execution by thecomputer and that cause the computer to perform any one or more of themethodologies of the present invention. The term “computer-accessiblestorage medium” shall accordingly be understood to include, but not belimited to, solid-state memories, optical and magnetic media, etc.

CONCLUSION

Many modifications and other embodiments of the invention will come tomind to one skilled in the art to which this invention pertains havingthe benefit of the teachings presented in the foregoing descriptions andthe associated drawings. It should also be understood that, althoughvarious embodiments are described above as using a link (e.g., a URL) toprovide user access to a shared file set, any other suitable indicia maybe used for this purpose such as a link that includes a file path to thefile set. Moreover, in some embodiments, generated and received linksmay automatically be saved to a “favorite links” listing. In otherembodiments, only certain links may be included in the listing based onglobal user preferences. In still other embodiments, a user may set apreference that requires that the user to add a link to their favoriteslisting thereby only providing a list of those links that the userchooses to save.

In light of the above, it is to be understood that the invention is notto be limited to the specific embodiments disclosed and thatmodifications and other embodiments are intended to be included withinthe scope of the appended claims. Although specific terms are employedherein, they are used in a generic and descriptive sense only and notfor the purposes of limitation.

What is claimed is:
 1. A computer-implemented method comprising:receiving, from a client device associated with a user account, aninquiry for information pertaining to shared access of one or morecontent items stored on a content management system; and in response tothe inquiry, providing a list of requests shared by the user accountusing a plurality of links to the client device, wherein the list of therequests includes request information for each respective request in thelist of the requests, the request information including: a recipient ofeach respective request; an option to resend each request; and an optionto remove each request.
 2. The computer-implemented method of claim 1,further comprising: sharing, by the user account on the contentmanagement system, the plurality of links for the one or more contentitems on the content management system, wherein the plurality of linksprovides access to the one or more of the content items.
 3. Thecomputer-implemented method of claim 1, wherein the request informationfurther includes a date that each request was received and a name ofeach shared content item.
 4. The computer-implemented method of claim 1,further comprising: in response to receiving one of the requests toshare at least one of the content items, generating a link, wherein thelink i s configured to provide a link recipient with at least access tothe at least one of the content items.
 5. The computer-implementedmethod of claim 4, wherein the generated link is a request to share afolder with one or more content items therein.
 6. Thecomputer-implemented method of claim 4, wherein the generated link is aunique URL that is independent of a file set descriptor such that thefile set descriptor cannot be inferred from the unique URL.
 7. Thecomputer-implemented method of claim 4, further comprising: sending,using a server-side mail client, the generated link to an email addressassociated with a respective recipient; and automatically capture linkinformation. when the generated link is sent and store the captured linkinformation in the content management system.
 8. Thecomputer-implemented method of claim 1, further comprising: determininga time period after which the link is expired based on a receivedexpiration request.
 9. A non-transitory computer-readable mediumcomprising instructions, the instructions, when executed by a computingsystem, cause the computing system to: receive, from a client deviceassociated with a user account, an inquiry for information pertaining toshared access of one or more content items stored on a contentmanagement system; in response to the inquiry, provide a list ofrequests shared by the user account using a plurality of links to theclient device; a recipient of each respective request; an option toresend each request; and an option to remove each request.
 10. Thenon-transitory computer-readable medium of claim 9, wherein thecomputer-readable medium further comprises instructions that, whenexecuted by the computing system, cause the computing system to: share,by the user account on the content management system, the plurality oflinks for the one or more content items on the content managementsystem, wherein the plurality of links for sharing the one or more ofthe content items.
 11. The non-transitory computer-readable medium ofclaim 9, the request information further includes a date that eachrequest was received and a name of each shared content item.
 12. Thenon-transitory computer-readable medium of claim 9, wherein thenon-transitory computer-readable medium further comprises instructionsthat, when executed by the computing system, cause the computing systemto: in response to receive one of the requests to share at least one ofthe content items, generating a link, wherein the link is configured toprovide a link recipient with at least access to the at least one of thecontent items.
 13. The non-transitory computer-readable medium of claim12, the generated link is a request to share a folder with one or morecontent items therein.
 14. The non-transitory computer-readable mediumof claim 12, the generated link is a unique URL that is independent of afile set descriptor such that the file set descriptor can not beinferred from the unique URL.
 15. The non-transitory computer-readablemedium of claim 12, wherein the non-transitory computer-readable mediumfurther comprises instructions that, when executed by the computingsystem, cause the computing system to: send, use a server-side mailclient, the generated link to an email address associated with arespective recipient; and automatically capture link information whenthe generated link is sent and store the captured link information inthe content management system.
 16. The non-transitory computer-readablemedium of claim 9, wherein the computer-readable medium furthercomprises instructions that, when executed by the computing system,cause the computing system to: determine a time period after which thelink is expired based on a received expiration request.
 17. A systemcomprising: memory configured to store instructions; and one or moreprocessors configured to execute the instructions and cause the one ormore processors to: receive, from a client device associated with a useraccount, an inquiry for information pertaining to shared access of oneor more content items stored on a content management system, in responseto the inquiry, provide a list of requests shared by the user accountusing a plurality of links to the client device, wherein the list of therequests includes request information for each respective request in thelist of the requests, the request information including: a recipient ofeach respective request, an option to resend each request, and an optionto remove each request.
 18. The system of claim 17, wherein the one ormore processors are configured to execute the instructions and cause theone or more processors to: share, by the user account on the contentmanagement system, a plurality of links for one or more content items onthe content management system, wherein the plurality of links forsharing the one or more of the content items.
 19. The system of claim17, wherein the request information further includes a date that eachrequest was received and a name of each shared content item.
 20. Thesystem of claim 17, wherein the one or more processors is configured toexecute the instructions and cause the one or more processors to: inresponse to receive one of the requests to share at least one of thecontent items, generating a link, wherein the link is configured toprovide a link recipient with at least access to the at least one of thecontent items.